Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MIDI over BLE support for ESP32, ArduinoBLE and Raspberry Pi Pico W #993

Merged
merged 42 commits into from
Jan 23, 2024

Conversation

tttapa
Copy link
Owner

@tttapa tttapa commented Jan 23, 2024

This set of changes completely refactors the high-level BluetoothMIDI_Interace implementation to have it support many different backends using different BLE libraries. Previously, only the Bluedroid stack on ESP32 was supported.

The following backends are now supported:

  • ESP32 Bluedroid (mostly untouched, simply updated the interface for callback functions to use the new BLEAPI)
  • ESP32 NimBLE (new)
  • ArduinoBLE (new, with some limitations)
  • Pi Pico W BTstack (new)

To make use of MIDI over BLE, add #include <MIDI_Interfaces/BluetoothMIDI_Interface.hpp> to your sketch.
The BluetoothMIDI_Interface API remains mostly the same, except for the flush() function, which has been removed in favor of sendNow(), for consistency with the other MIDI interfaces. The original BluetoothMIDI_Interface tests have been ported, and new tests for some of the low-level BLE packet buffering functions have been added.

The documentation now includes a MIDI over BLE page with details about the different backends.
An example named BLEMIDI-Adapter.ino has been added.

@tttapa tttapa merged commit 3cd56f6 into main Jan 23, 2024
18 checks passed
@tttapa tttapa deleted the ble-midi branch January 23, 2024 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant